package com.yunji.aggregate.model.vo.stock;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yunji.common.annotation.Excel;
import com.yunji.common.base.BaseDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @Project: yunji-coffee
 * @Package: com.yunji.storage.vo
 * @Title: StorageTicketVO
 * <p>
 * History:
 * Date                     Version     Author          Summary
 * ============================================================
 * 2024-08-16 15:55:50      V1.0        HuaAo       新建类
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class StorageTicketStatisticsVO extends BaseDTO {

    @ApiModelProperty("单据ID")
    private Long ticketId;

    @ApiModelProperty("单据编号")
    @Excel(name = "单据编号", width = 15)
    private String ticketCode;

    @ApiModelProperty("商品种类")
    @Excel(name = "商品种类", width = 15)
    private Integer productType;

    @ApiModelProperty("业务单ID")
    private Long businessId;

    @ApiModelProperty("业务类型 0-无 1-调拨单 2-坏返单 3-维修单 4-盘点单 5-生产单 6-采购单 7-退货单 8-废品单 9-其他 ")
    @Excel(name = "业务类型 0-无 1-调拨单 2-坏返单 3-维修单 4-盘点单 5-生产单 6-采购单 7-退货单 8-废品单 9-其他 ", width = 15)
    private Integer businessType;

    @ApiModelProperty("业务单号")
    @Excel(name = "业务单号", width = 15)
    private String businessCode;

    @ApiModelProperty("单据状态 1-待出入库 2-已出入库 3-部分出入库 4-已取消")
    @Excel(name = "单据状态 1-待出入库 2-已出入库 3-部分出入库 4-已取消", width = 15)
    private Integer storageStatus;

    @ApiModelProperty("单据类型 1-入库 2-出库")
    @Excel(name = "单据类型 1-入库 2-出库", width = 15)
    private Integer storageType;

    @ApiModelProperty("使用状态 0-启用 1-停用")
    @Excel(name = "使用状态 0-启用 1-停用")
    private Integer useStatus;

    @ApiModelProperty("物流ID")
    private Long expressId;

    @ApiModelProperty("操作人ID")
    private Long operateId;

    @ApiModelProperty("操作人姓名")
    @Excel(name = "操作人姓名", width = 15)
    private String operateName;

    @ApiModelProperty("出入库时间/操作时间")
    @Excel(name = "出入库时间/操作时间", width = 15)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date operateTime;

    @ApiModelProperty("操作状态 0-未操作 1-已填写物流 2-已上传附件")
    @Excel(name = "操作状态 0-位操作 1-已填写物流 2-已上传附件")
    private Integer operateStatus;

    @ApiModelProperty("所属单位ID")
    private Long belongId;

    @ApiModelProperty("附件(照片)")
    @Excel(name = "附件(照片)", width = 15)
    private String albumPics;

    @ApiModelProperty("单据备注")
    @Excel(name = "单据备注", width = 15)
    private String remark;

    @ApiModelProperty("平台创建/是否可删除 0-否 1-是")
    private Integer deletable;

    @ApiModelProperty("删除状态 0-未删除 1-已删除")
    private Integer delFlag;
    @ApiModelProperty("预计出入库量")
    @Excel(name = "预计出入库量", width = 15)
    private BigDecimal expectQuantity;

    @ApiModelProperty("实际出入库量")
    @Excel(name = "实际出入库量", width = 15)
    private BigDecimal actualQuantity;

    @ApiModelProperty("父级所属单位ID")
    private Long parentId;

    @ApiModelProperty("所属单位名称")
    @Excel(name = "所属单位名称", width = 15)
    private String belongName;

    @ApiModelProperty("物流公司")
    @Excel(name = "物流公司", width = 15)
    private String expressCompany;

    @ApiModelProperty("物流单号")
    @Excel(name = "物流单号", width = 15)
    private String expressCode;

    @ApiModelProperty("运费")
    @Excel(name = "运费", width = 15)
    private BigDecimal expressAmount;

    @ApiModelProperty("物流填写 0-未填写 1-已填写")
    private Integer expressStatus;

    /// @ApiModelProperty("出入库单记录")
    //private List<StorageRecords> recordList;

}